package com.sprouting.metadata.view.interfaces;

import freemarker.template.Template;

import java.io.*;
import java.util.Map;

/**
 * 文档生成的接口
 * 所有文档生成都必须实现
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2022/4/25 13:37
 */
public interface DocumentGenerationInterface {


    /**
     * 生成文档
     * @param map 加载的数据
     * @param file 文件保存的位置，需要先创建，示例 e:/t/t.txt
     * @param template 使用的模板文件
     * @throws Exception
     */
    default void produce(Map<String, Object> map, File file, Template template) throws Exception{
        try (Writer out = new BufferedWriter(
                new OutputStreamWriter(new FileOutputStream(file), ViewConstant.Base.DEFAULT_ENCODING))) {

            // 加载数据到模板中
            template.process(map, out);
        }
    }

}
